package com.spsoft.vatoutinv.model.vo.matchflow;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.spsoft.vatoutinv.annotation.Translate;
import com.spsoft.vatoutinv.constants.CommonConstant;
import com.spsoft.vatoutinv.constants.DictConstant;
import com.spsoft.vatoutinv.constants.TranslateConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 发票匹配流水-发票主信息
 *
 * @author : chenxudong
 * @date : 2024/6/26 9:17
 */
@Data
@ApiModel(value = "发票匹配流水-发票主信息对象")
public class VmsMatchInvoiceDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 匹配记录主键
     */
    @ApiModelProperty(value = "匹配记录主键")
    private Long matid;

    /**
     * 销售方名称
     */
    @ApiModelProperty(value = "销售方名称")
    private String xsfmc;

    /**
     * 发票类型
     */
    @ApiModelProperty(value = "发票类型")
    @Translate(type = TranslateConstant.DICT, value = DictConstant.VMS_FPLX)
    private String fplx;

    /**
     * 发票号码
     */
    @ApiModelProperty(value = "发票号码")
    private String fphm;

    /**
     * 发票代码
     */
    @ApiModelProperty(value = "发票代码")
    private String fpdm;

    /**
     * 开票日期
     */
    @ApiModelProperty(value = "开票日期")
    @Translate(type = TranslateConstant.DATE)
    private Date kprq;

    /**
     * 购买方名称
     */
    @ApiModelProperty(value = "购买方名称")
    private String gmfmc;

    /**
     * 购买方识别号
     */
    @ApiModelProperty(value = "购买方识别号")
    private String gmfsbh;

    /**
     * 合计金额
     */
    @ApiModelProperty(value = "不含税金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal hjje;

    /**
     * 合计税额
     */
    @ApiModelProperty(value = "税额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal hjse;

    /**
     * 价税合计
     */
    @ApiModelProperty(value = "含税金额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal jshj;

    /**
     * 业务单号类型
     * 1：投保单号 2：汇交单号 3：学平险受理号
     */
    @ApiModelProperty(value = "业务单号类型 1：投保单号 2：汇交单号 3：学平险受理号")
    private String ywdhlx;

    /**
     * 业务单号
     */
    @ApiModelProperty(value = "业务单号")
    private String ywdh;

}
